package com.druid.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.druid.common.mapstruct.CeSecurityRoleMapstruct;
import com.druid.entity.CeSecurityRole;
import com.druid.mapper.managementmapper.CeSecurityRoleMapper;
import com.druid.model.PageBody;
import com.druid.request.PageParam;
import com.druid.response.CeSecurityRoleVm;
import com.druid.service.managementservice.ICeSecurityRoleService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 角色表 服务实现类
 * </p>
 *
 * @author druid-elf
 * @since 2019-12-25
 */
@Service
@RequiredArgsConstructor
public class CeSecurityRoleServiceImpl extends ServiceImpl<CeSecurityRoleMapper, CeSecurityRole> implements ICeSecurityRoleService {

    private final CeSecurityRoleMapstruct ceSecurityRoleMapstruct;

    /**
     * 根据分页参数得到角色分页数据
     *
     * @param pageParam 分页参数
     * @return 分页数据
     */
    @Override
    public PageBody<CeSecurityRoleVm> getCeSecurityRolePageList(PageParam pageParam) {

        IPage<CeSecurityRole> page = page(new Page<>(pageParam.getPageNum(), pageParam.getPageSize()));
        List<CeSecurityRoleVm> ceSecurityRoleVms = ceSecurityRoleMapstruct.CeSecurityRoleTransformLList(page.getRecords());

        return PageBody.dealWithList( page, ceSecurityRoleVms );
    }
}
